home *** CD-ROM | disk | FTP | other *** search
- package netscape.ldap;
-
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Method;
- import java.net.Socket;
-
- public class LDAPSSLSocketFactory implements LDAPSSLSocketFactoryExt {
- private boolean m_clientAuth = false;
- private String m_packageName = "netscape.net.SSLSocket";
- private Object m_cipherSuites;
- private LDAPConnection m_connection;
-
- public LDAPSSLSocketFactory() {
- }
-
- public LDAPSSLSocketFactory(boolean var1) {
- this.m_clientAuth = var1;
- }
-
- public LDAPSSLSocketFactory(String var1) {
- this.m_packageName = new String(var1);
- }
-
- public LDAPSSLSocketFactory(String var1, boolean var2) {
- this.m_packageName = new String(var1);
- this.m_clientAuth = var2;
- }
-
- public LDAPSSLSocketFactory(String var1, Object var2) {
- this.m_packageName = new String(var1);
- this.m_cipherSuites = var2;
- }
-
- public LDAPSSLSocketFactory(String var1, Object var2, boolean var3) {
- this.m_packageName = new String(var1);
- this.m_cipherSuites = var2;
- this.m_clientAuth = var3;
- }
-
- public void enableClientAuth() {
- this.m_clientAuth = true;
- }
-
- public void enableClientAuth(String var1, String var2, String var3, String var4, String var5) throws LDAPException {
- throw new LDAPException("Client auth not supported now");
- }
-
- public boolean isClientAuth() {
- return this.m_clientAuth;
- }
-
- public String getSSLSocketImpl() {
- return this.m_packageName;
- }
-
- public Object getCipherSuites() {
- return this.m_cipherSuites;
- }
-
- public Socket makeSocket(String var1, int var2) throws LDAPException {
- Object var3 = null;
- if (this.m_clientAuth) {
- try {
- Method var4 = LDAPCheckComm.getMethod("netscape.security.PrivilegeManager", "enablePrivilege");
- if (var4 != null) {
- Object[] var5 = new Object[]{new String("ClientAuth")};
- var4.invoke((Object)null, var5);
- }
- } catch (Exception var12) {
- throw new LDAPException("Invoking enablePrivilege: " + ((Throwable)var12).toString(), 89);
- }
- }
-
- try {
- String var15 = null;
- if (this.m_cipherSuites != null) {
- var15 = this.m_cipherSuites.getClass().getName();
- }
-
- Class var16 = Class.forName(this.m_packageName);
- Constructor[] var6 = var16.getConstructors();
-
- for(int var7 = 0; var7 < var6.length; ++var7) {
- Class[] var8 = var6[var7].getParameterTypes();
- if (this.m_cipherSuites == null && var8.length == 2 && var8[0].getName().equals("java.lang.String") && var8[1].getName().equals("int")) {
- Object[] var17 = new Object[]{var1, new Integer(var2)};
- Socket var14 = (Socket)var6[var7].newInstance(var17);
- return var14;
- }
-
- if (this.m_cipherSuites != null && var8.length == 3 && var8[0].getName().equals("java.lang.String") && var8[1].getName().equals("int") && var8[2].getName().equals(var15)) {
- Object[] var9 = new Object[]{var1, new Integer(var2), this.m_cipherSuites};
- Socket var13 = (Socket)var6[var7].newInstance(var9);
- return var13;
- }
- }
-
- throw new LDAPException("No appropriate constructor in " + this.m_packageName, 89);
- } catch (ClassNotFoundException var10) {
- throw new LDAPException("Class " + this.m_packageName + " not found", 89);
- } catch (Exception var11) {
- throw new LDAPException("Failed to create SSL socket", 91);
- }
- }
- }
-